home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
- * All Rights Reserved.
- *
- * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
- * the contents of this file may not be disclosed to third parties, copied or
- * duplicated in any form, in whole or in part, without the prior written
- * permission of Silicon Graphics, Inc.
- *
- * RESTRICTED RIGHTS LEGEND:
- * Use, duplication or disclosure by the Government is subject to restrictions
- * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
- * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
- * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
- * rights reserved under the Copyright Laws of the United States.
- */
-
- #include "parse.h"
- #include <strings.h>
-
- // this is as crude as you can get
-
- struct table {
- symtableentry *data;
- long count;
- long maxsize;
- };
-
- long newtable(long size)
- {
- table *t = new table;
- t->data = new symtableentry[size];
- t->count = 0;
- t->maxsize = size;
- return (long)t;
- }
-
- void cleartable(long tt)
- {
- table *t = (table *)tt;
- for (long i = 0; i < t->count; i++) {
- *t->data[i].symbol = 0;
-
- t->data[i].p = 0;
- }
- t->count = 0;
- }
-
- symtableentry *lookup(long tt, char *str)
- {
- table *t = (table *)tt;
- for (long i = 0; i < t->count; i++) {
- if (strcmp(t->data[i].symbol, str) == 0)
- return &t->data[i];
- }
- return 0;
- }
-
- void removeentry(long tt, char *str)
- {
- table *t = (table *)tt;
- for (long i = 0; i < t->count; i++) {
- if (strcmp(t->data[i].symbol, str) == 0)
- t->data[i].symbol[0] = 0;
- }
- }
-
- symtableentry *addentry(long tt, char *str, reservedword value)
- {
- symtableentry *st;
- table *t = (table *)tt;
- st = &t->data[t->count++];
- strcpy(st->symbol, str);
- st->value = value;
- return st;
- }
-
-